'''
numpy支持大量的维度数组与矩阵运算，此外也针对数组运算提供大量的数学函数库，还有很多科学计算函数。

NumPy 是一个运行速度非常快的数学库，主要用于数组计算，包含：

- 一个强大的N维数组对象 ndarray
- 广播功能函数
- 整合 C/C++/Fortran 代码的工具
- 线性代数、傅里叶变换、随机数生成等功能
'''

import numpy as np

print(np.eye(4))

# N 维数组对象 ndarray，它是一系列同类型数据的集合，以 0 下标为开始进行集合中元素的索引。
# 创建一个ndarray数据, ndmin=2表示二维数组，0和1表示一维数组
# ndarray 对象由计算机内存的连续一维部分组成，并结合索引模式，将每个元素映射到内存块中的一个位置。
ar = np.array([1,2,3])
nd = np.array([ar,ar], ndmin=1)
print(nd)
nd = np.array([[1,2,3],[2,3,4]])
print(nd)
# np.ndarray(ar)

# 数据类型判断
num = 'i2'
print(np.dtype(num))

# range和arange
'''
在之前的生成坐标轴数据序列时用到了range和arange方法，在实际项目中这两个方法常用来创建数字序列。

range(start开始值, end不包含结束值, step整数数字序列步长) 是python语言自带的，只能用来创建整数类型的等差数字数列

np.arange(start, end不包含结束值, step支持浮点数整数步长)
'''
a=range(0,10,2)
print(a) # range(0,10,2) 这是整数序列
print(type(a)) # <class 'range'>
for i in a:
    print(i)

b=np.arange(0,10,2.5) 
print(b) # [0.  2.5 5.  7.5] 返回的是numpy.ndarray类型的数组数据---数组，ndarray是numpy库里存储一维或多维数组对象
print(type(b)) # <class 'numpy.ndarray'>
print(b.ndim) # 数组维度是1
print(b.size) # 数量
print(b.dtype) # 类型
print(b.shape) # 形状
print(b.mean(), b.sum()) # 平均值 和
for i in b:
    print(i)
c=np.array([[1,2],[3,4]]) # array()方法常用来定义多维数组
print(c)
